package com.smg.crm.settings.service.impl;

import com.smg.crm.settings.dao.DictionaryTypeDao;
import com.smg.crm.settings.domain.DicType;
import com.smg.crm.settings.service.DictionaryTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class DictionaryTypeServiceImpl implements DictionaryTypeService {

    @Autowired
    private DictionaryTypeDao dictionaryTypeDao;

//    @Autowired
//    private DictionaryTypeDao dictionaryTypeDao;

    @Override
    public List<DicType> findAll() {
        return dictionaryTypeDao.findAll();
    }

    @Override
    public boolean checkCode(String code) {
        //查询code的总记录数
        //如果总记录数为1,代表已存在
        //如果总记录数为0,代表可以使用
        int count = dictionaryTypeDao.checkCode(code);

        if(count > 0){
            return false;
        }

        return true;
    }

    /**
     * 字典类型的主键和其他表的主键属性不同
     *      其他表的主键没有实际意义
     *          我们只是作为唯一的主键进行存储,代表该条数据在表中的唯一性
     *      字典类型的主键是有实际意义的
     *          比如,当前的系统中,包含一些下拉列表的属性,性别:男/女
     *          那么主键code,则是具有代表意义的,表示当前属性的内容
     * @param dicType
     */
    @Override
    public void saveDicType(DicType dicType) {
        dictionaryTypeDao.saveDicType(dicType);
    }

    @Override
    public DicType findByCode(String code) {
        return dictionaryTypeDao.findByCode(code);
    }

    @Override
    public int updateById(DicType dicType) {
        return dictionaryTypeDao.updateById(dicType);
    }

    @Override
    public int deleteByCodes(String[] codes) {

        for (String code : codes) {
            //1.删除对应的字典值数据,明天再做

            //2.删除字典类型数据
            dictionaryTypeDao.deleteByCode(code);
        }



        return 1;

    }
}